// function compare(v1, v2) {
//     v1 = v1.split('.')
//     v2 = v2.split('.')
//     const len = Math.max(v1.length, v2.length)

//     // 调整两个版本号位数相同
//     while (v1.length < len) {
//         v1.push('0')
//     }
//     while (v2.length < len) {
//         v2.push('0')
//     }
//     // 循环判断每位数的大小
//     // rc > beta > alpha，major > minor > patch；
//     for (let i = 0; i < len; i++) {
//         const num1 = parseInt(v1[i])
//         const num2 = parseInt(v2[i])
//         if (isNaN(num1) && isNaN(num2)) {
//             if (['alpha', 'beta', 'rc'].indexOf(v1[i]) > ['alpha', 'beta', 'rc'].indexOf(v2[i])) {
//                 return 1
//             } else if (['alpha', 'beta', 'rc'].indexOf(v1[i]) < ['alpha', 'beta', 'rc'].indexOf(v2[i])) {
//                 return -1
//             }
//         } else if (isNaN(num1) || isNaN(num2)) {
//             if (isNaN(num1)) {
//                 return -1
//             } else {
//                 return 1
//             }
//         } else {
//             if (num1 > num2) {
//                 return 1
//             } else if (num1 < num2) {
//                 return -1
//             }
//         }
//     }
//     return 0
// }
// console.log(compareVersion('1.3.0.beta.1', '1.3.0.beta.12'))

function compare(edition1, edition2) {
    if (edition1 === edition2) return 0;
  
    let e1 = edition1.split(".");
    let e2 = edition2.split(".");
  
    let i;
    for (i = 0; i < Math.min(e1.length, e2.length); i++) {
      if (e1[i] !== e2[i]) {
        if (isNaN(Number(e1[i]))) {
            console.log(e1[i],e2[i].charCodeAt())
          if (e1[i].charCodeAt() > e2[i].charCodeAt()) {
            return 1;
          } else {
            return -1;
          }
        } else {
          if (Number(e1[i]) > Number(e2[i])) {
            return 1;
          } else {
            return -1;
          }
        }
      }
    }
  
    if (e1.length < e2.length) return 1;
    return -1;
  }
  
  let testCases = [
    ["1.2.3", "1.2.4"],
    ["1.12.3", "1.2.4"],
    ['1.10.0','1.3.0'],
    ["1.2.4", "1.2.4"],
    ["1.2.4", "1.2.4.alpha"],
    ["1.2.3.alpha", "1.2.3.beta"],
  ];
  
  testCases.forEach((testcase) => console.log(compare(testcase[0], testcase[1])));
  // -1
  // 1
  // 1
  // 0
  // 1
  // -1


